package com.maniu.ffmpegmusicplayer;

import android.content.Context;
import android.content.res.Resources;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class FileUtils {

    public static void copyRawResourceToExternalFilesDir(Context context, int resourceId, String suffix) {
        // 获取 raw 资源文件的 InputStream
        Resources resources = context.getResources();
        InputStream inputStream = resources.openRawResource(resourceId);

        // 获取外部存储的目录路径
        File externalFilesDir = context.getExternalFilesDir(null);
        if (externalFilesDir == null) {
            // 处理外部存储不可用的情况
            return;
        }

        // 构造目标文件路径
        File targetFile = new File(externalFilesDir, context.getResources().getResourceEntryName(resourceId) + suffix);

        // 检查并创建目标目录（如果需要）
        if (!targetFile.getParentFile().exists()) {
            targetFile.getParentFile().mkdirs();
        }

        // 将文件从 InputStream 拷贝到目标文件
        try (OutputStream outputStream = new FileOutputStream(targetFile)) {
            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }
            outputStream.flush();
        } catch (IOException e) {
            e.printStackTrace();
            // 处理拷贝失败的情况
        } finally {
            // 确保 InputStream 被关闭
            try {
                inputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}